/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.giant.services.transactions;

import com.giant.entities.WClaim;
import com.giant.entities.WClaimImage;
import com.giant.exceptions.OperacionInvalidaException;
import com.giant.services.IServicioPersistenciaLocal;
import com.giant.services.ServicioPersistencia;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author taticay
 */
@Stateless
public class ServiceClaim implements ServiceClaimLocal {

    /**
     * Interface con referencia al servicio de persistencia en el sistema
     */
    @EJB
    private IServicioPersistenciaLocal persistencia;

    //-----------------------------------------------------------
    // Constructor
    //-----------------------------------------------------------
    /**
     * Constructor de la clase sin argumentos
     */
    public ServiceClaim() {
        persistencia = new ServicioPersistencia();
    }

    //-----------------------------------------------------------
    // Métodos
    //-----------------------------------------------------------
    /**
     * Agrega un vendedor al sistema
     *
     * @param vendedor Nuevo vendedor
     * @throws OperacionInvalidaException Excepción lanzada en caso de error
     */
    @Override
    public void addClaim(WClaim claim) throws OperacionInvalidaException {
        try {
            persistencia.create(claim);
        } catch (OperacionInvalidaException ex) {
            throw new OperacionInvalidaException(ex.getMessage());
        }
    }

    /**
     * Devuelve todos los vendedores del sistema
     *
     * @return vendedores Vendedores del sistema
     */
    @Override
    public List<WClaim> getClaims() {
        return persistencia.findAll(WClaim.class);
    }

    /**
     * Devuelve todos los vendedores del sistema
     *
     * @return vendedores Vendedores del sistema
     */
    @Override
    public List<WClaim> getClaimFilter(String a, Map<String, String> map) {
        return persistencia.executeSql(a, map);
    }

    @Override
    public void executeCRUDSQL(String sql) {

        persistencia.executeGenericSQLAdd(sql);
    }
    
    @Override
    public List executeSQL(String sql) {

        return persistencia.executeGenericSQL(sql);
    }

    @Override
    public void addClaimImage(WClaimImage claim) throws OperacionInvalidaException {
        try {
            persistencia.create(claim);
        } catch (OperacionInvalidaException ex) {
            throw new OperacionInvalidaException(ex.getMessage());
        }
    }
}
